「小学校の「プログラミング授業」実況中継」を読んで

2023年9月15日

技術評論社から出ている「小学校の「プログラミング授業」実況中継」は、サブタイトル「〔教科別〕2020年から必修のプログラミング教育はこうなる」にあるとおり、各教科にプログラミング学習を取り入れた場合のモデルケースを提示している。
本書の全体的な印象は、プログラミング教育に対して非常に「前のめりである」ということである。本書の記載から引用すると、
「情報化社会を生き抜くための主体性の確立こそが、プログラミング授業を通したコンピュータ社会における自らの生き方を考えることにつながるのだと信じています」
「確かな時代認識と学校の「不易」を考えれば、プログラミング授業こそ、もっともっと力を注いで大きなうねりを生み出してほしい」
などなど、・・・とにかくプログラミング教育に前のめりなのである。
一方で、「必修化を受けてプログラミング教育の実施主体となった学校現場は全く盛り上がっていません」とあるように、当の学校現場は今のところプログラミング教育を冷静(冷淡?)に受け止めているようである。
本書では、プログラミング教育に対して批判めいたことはほとんど書かれていないし、他の教育目標(例えば環境学習とか母語の学習など)との優先度なども考察されていない点が物足りない。
本書では、国語、社会、算数、理科、生活、音楽、図画工作、家庭、体育、外国語、の各教科にプログラミング学習を取り入れた場合のモデル授業が提示されている。しかし、理科を除けば、無理やりプログラミング教育を取り入れたような違和感がある。
例えば国語では「4字熟語をアニメーションで表現しよう」というテーマで、「プログラミン」というビジュアル言語(絵と命令を表すキャラクターを組み合わせてプログラムを作成できる)を取り入れた事例が紹介されている。
しかし、なぜ4字熟語やことわざをプログラムで表現しなければならないのだろうか?
熟語やことわざの意味を視覚的に表現したいならば、なにもプログラミングに拘る必要はない。視聴覚教育や、マルチメディア教材、CSCL(コンピュータ支援による協調学習)など、他の代替手段との比較検討がなされるべきだと感じる。

小学校のプログラミング教育では、どのようなプログラミング言語が想定されているのだろうか。
本書には多くの候補が提示されている。
6年生ではテキストベースの言語(主にアルファベットで記述する)も使用可能だが、それ以下の学年ではテキストベースの言語を使用するのは難しい。そこで、視覚的、直観的にわかりやすいビジュアル言語を用いることが想定されている。代表的なものが「Scratch」である。Scratchはアメリカの大学で子ども(初心者)向けに開発され、世界中で使われているという。日本のプログラミング教室でも一番多く(36%)使われているそうだ。
Scratchから派生した言語には、冒頭で紹介した「プログラミン」(これは文部科学省が公開するプログラミングツールである)や、「mBlock」などがある。本書ではこれ以外にも、「PETS」、「Hour of Code」、「Viscuit」、「レゴWeDo 2.0」、「ArtecRobo」、「HackforPlay」、「CodeMonkey」などが紹介されている。これだけ数が多いと、どれを採用するべきなのか、教育の現場は大いに迷うであろう。
小学校のプログラミング教育を考えるとき、以下の点を考慮すべきだと思うのだが、今のところ明快な答えは見つからない。

(1)プログラミング学習は小学校からはじめなければならないのか?

教育心理学の本を読むと、敏感期やレディネス(最適な時期に学ぶと最も効果が高い)に関する記載がある。語学や音楽は早い時期に学習すると効果があることが認められているそうだが、プログラミングも果たしてそうなのかは大いに疑問である。
ピアジェ(Piaget)の発達段階の定義では、7歳~11歳は具体的操作期に当たり、11歳~成人が形式的操作期に当たるとされる。この定義が必ずしも正しいとは限らないが、小学校の低学年にとって形式的操作(抽象的な思考)は大きな困難を伴うだろう。
プログラムそのものは形式的であるから、その実行結果をロボットやディスプレイ上の絵など、具体的なものの動きでわかるようにする(具体的操作に還元する)必要があると考えられる。この点で、ビジュアル言語を使用したり、ロボットのプログラミングを学ぶことは理にかなっているといえる。
私がプログラムを学んだのは社会人になってからである。1980年代は情報処理の専門学校などもほとんどなかったから、多くのプログラマーは社会人になってから仕事の一環でプログラミングを習得していた。
今のソフトウェア開発環境は当時と比べて格段に複雑になっている(技術領域の幅と深さが増している)から、単純な比較はできないが、それでもプログラミングを小学校から学ぶ必然性はあまり感じない。

(2)プログラミングとデジタル教材との関係

マルチメディア教材をはじめとするデジタル教材とプログラミング教育がごちゃ混ぜになって論じられているようにみえる。デジタル教材の目的や思想的背景は「デジタル教材の教育学」(東京大学出版会)などに詳しい。この書籍によれば、マルチメディア教材は、学習者の知的好奇心に基づく探索や、推論や検証を経た知識構築こそが意味のある学習過程と考え、学習者の内発的動機付けを重視して開発されている。
この思想背景を読むとプログラミング教育と共通するところが多く、どのようなケースでどちらを使用するのが望ましいのか、など検討すべきことが多々あるように感じる。

(3)他の教育分野(教育目的)との優先度の問題

他の教育目標と書いたのは、具体的には環境教育などである。「もっともっと力を注いで大きなうねりを生み出してほしい」のはプログラミング教育に限らない。
例えば、SDGs(持続可能な開発目標)など、人間と地球環境とのかかわりは大きな社会的課題である。今の小学生が社会に出る頃、温室効果ガスや気候変動などは喫緊の課題になっている可能性が高い。
このように、プログラミング教育と他のテーマとを比較して軽重を判断する必要があるだろう。これについては別途検討したいと思う。

(4)日本におけるプログラマーの位置付け

日本のIT業界(主にエンタープライズ系)では、プログラマーはSE(システムエンジニア)よりも下に見られてきた。下というのは、主に職種と給与についてSEよりも低く見られてきたという意味である。
また、IT業界はながらく新3Kなどと言われ、就職では敬遠される傾向にあった。新3Kとは、「きつい、厳しい、帰れない」の3つのKであるが(この他にも「きつい、帰れない、給料が安い」など、いくつかのバリエーションがあるようだ)。これについても別途記載したいと思う。
最後に、本書を読んでいて気になった点について、冒頭で記載した以外の事項を記載しておく。

(1)10年後20年後の技術

「学校は子どもたちが生きる時代の認識を確かにもち、そこで必要となる技術を学ぶ最先端の場である」と書かれているが、これは本当だろうか?
IoTやAI、ロボットなどのことが書かれているが、これは今現在ホットな話題であって、10年後20年後の技術がどう変化しているかは誰にも予想できない。それだからこそ、もっと基礎となる知識や、知識を現実の場で応用できる力を養うべきではなかろうか。

(2)DQ(Digital Intelligence)

DQという言葉を本書で初めて知った。IQやEQ(emotional quotient)を模した概念だと思われるが、DQが一般に認知されたものなのか否か、私はよく知らない。
DQについて、8つのトピックスが紹介されているのだが、そのなかに「デジタルシチズンアイデンティティ」とか、「スクリーン時間管理」とか、「デジタル共感」、「デジタルフットプリント管理」など、良く分からない概念が紹介されている。
参照先のDQInstituteのWebサイトを見ると、「デジタル・リテラシー」や「デジタルデータに関する著作権」などが記載されている。著作権をプライバシー管理としているのは、誤訳なのか否か・・・・、良く分からない。

(3)曖昧さ

プログラムを、子どもにとって分かり易いように、日本語表現で、かつ直観的に分かるような工夫がなされている。しかし、本来プログラム言語は厳密で曖昧さがないものだ。
本書では、「ジャンプ(高く)」や「手をたたく(強く)」など、関数的な表現が使われている。しかしこれを正しく理解するには、「ジャンプ」や「手をたたく」の中身(ロジックや条件)を明確にする必要がある。
例えば、
「ジャンプ(手をたたく)」:手をたたきながらジャンプするや、
「ジャンプ(回る)」:回りながらジャンプする、
といった使い方(関数から関数を呼び出すこと)が可能なのかが分からない(曖昧である)。さらに「回る(回る)」といった再起手続きを思いつく生徒がいるかもしれない。(この場合、いつ回ることを止めれば良いのか、悩むはずだ・・・)

プログラミング教育
「プログラミング教育」のINDEX